#define _CRT_SECURE_NO_WARNINGS 1
int* searchRange(int* nums, int numsSize, int target, int* returnSize) {
    int* ret = (int*)malloc(8);
    *returnSize = 2;
    ret[0] = -1, ret[1] = -1;
    if (numsSize == 0)
        return ret;
    int left = 0, right = numsSize - 1;
    while (left < right)
    {
        int mid = left + (right - left) / 2;
        if (nums[mid] < target)
            left = mid + 1;
        else
            right = mid;
    }
    if (nums[left] != target)
        return ret;
    else
        ret[0] = left;
    left = 0, right = numsSize - 1;
    while (left < right)
    {
        int mid = left + (right - left + 1) / 2;
        if (nums[mid] <= target)
            left = mid;
        else
            right = mid - 1;
    }
    if (nums[right] != target)
        return ret;
    else
        ret[1] = right;
    return ret;
}